﻿using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace WinCourseControls
{
    public enum CirclePolygonRelation
    {
        Inside,      // 圆形在多边形内部  
        Outside,     // 圆形在多边形外部  
        OnEdge       // 圆形与多边形相切  
    }

    public class CircleAndPointRelation
    {
        public Point Center;
        public double Radius;

        public CircleAndPointRelation(Point center, double radius)
        {
            Center = center;
            Radius = radius;
        }

        //public CirclePolygonRelation GetRelationToPolygon(Point[] points)
        //{
        //    // 对于圆形上的每一个点，都引一条射线到多边形的每个顶点，看看有没有交点  
        //    for (int i = 0; i < points.Length; i++)
        //    {
        //        Point toPoint = points[i];
        //        if (Center.X - Radius < toPoint.X && toPoint.X < Center.X + Radius && Center.Y - Radius < toPoint.Y && toPoint.Y < Center.Y + Radius)
        //        {
        //            // 这个点在圆形的边界上，需要特殊处理  
        //            return CirclePolygonRelation.OnEdge;
        //        }
        //        else if (IsPointInsidePolygon(toPoint))
        //        {
        //            // 这个点在多边形内部，那么圆形也在多边形内部  
        //            return CirclePolygonRelation.Inside;
        //        }
        //    }
        //    // 所有射线都没有交点，那么圆形在多边形外部  
        //    return CirclePolygonRelation.Outside;
        //}
    }
}
